জাভাস্ক্রিপ্টে ফাংশন হল কোডের একটি ব্লক যা নির্দিষ্ট কাজ সম্পাদন করে এবং প্রয়োজন অনুসারে বারবার ব্যবহার করা যায়। ফাংশনগুলি কোডকে আরও সংগঠিত, পুনরায় ব্যবহারযোগ্য এবং রক্ষণাবেক্ষণযোগ্য করে তোলে।
ফাংশন হলো এক বা একাধিক স্টেটমেন্টের একটি ব্লক যা নির্দিষ্ট কাজ সম্পাদন করে। এটি ডেটা গ্রহণ করতে পারে (প্যারামিটার) এবং ফলাফল রিটার্ন করতে পারে। ফাংশনগুলি বিভিন্ন ধরণের কাজ যেমন গণনা করা, ডেটা প্রক্রিয়াকরণ, ইউজার ইন্টারঅ্যাকশন পরিচালনা ইত্যাদিতে ব্যবহৃত হয়।
function greet() {
console.log("Hello, World!");
}
greet(); // আউটপুট: Hello, World!
ব্যাখ্যা: এখানে greet
নামক একটি ফাংশন ডিক্লেয়ার করা হয়েছে যা "Hello, World!" মেসেজটি কনসোলে প্রদর্শন করে।
জাভাস্ক্রিপ্টে ফাংশন ডিক্লেয়ার করার কয়েকটি পদ্ধতি রয়েছে:
ফাংশন ডিক্লেয়ারেশন হলো ফাংশন তৈরির একটি সাধারণ পদ্ধতি যেখানে function
কীওয়ার্ড ব্যবহার করা হয়।
function add(a, b) {
return a + b;
}
let sum = add(5, 3);
console.log(sum); // আউটপুট: 8
ব্যাখ্যা: এখানে add
নামক ফাংশনটি দুইটি প্যারামিটার a
এবং b
গ্রহণ করে এবং তাদের যোগফল রিটার্ন করে।
ফাংশন এক্সপ্রেশন হলো ফাংশনকে একটি ভেরিয়েবলে সংরক্ষণ করার পদ্ধতি। এটি অ্যানোনিমাস বা নেমড হতে পারে।
const multiply = function(a, b) {
return a * b;
};
let product = multiply(4, 5);
console.log(product); // আউটপুট: 20
ব্যাখ্যা: এখানে একটি অ্যানোনিমাস ফাংশন multiply
নামক ভেরিয়েবলে সংরক্ষিত হয়েছে, যা দুইটি সংখ্যার গুণফল রিটার্ন করে।
অ্যারো ফাংশন ES6 এ পরিচিত একটি সংক্ষিপ্ত ফাংশন ডেফিনিশন পদ্ধতি। এটি =>
সিনট্যাক্স ব্যবহার করে এবং this
কিওয়ার্ডের আচরণ পরিবর্তন করে।
const divide = (a, b) => {
return a / b;
};
let result = divide(10, 2);
console.log(result); // আউটপুট: 5
সংক্ষিপ্ত রূপ:
const subtract = (a, b) => a - b;
let difference = subtract(10, 4);
console.log(difference); // আউটপুট: 6
ব্যাখ্যা: অ্যারো ফাংশন সংক্ষিপ্ত সিনট্যাক্স ব্যবহার করে একই কাজ করে, যা কোডকে আরও পরিষ্কার এবং সংক্ষিপ্ত করে তোলে।
প্যারামিটার হলো ফাংশন ডিফিনিশনে ডিক্লেয়ার করা ভেরিয়েবল যা ফাংশন কল করার সময় মান গ্রহণ করে। আর্গুমেন্ট হলো সেই মান যা ফাংশন কল করার সময় প্যারামিটারে প্রদান করা হয়।
function introduce(name, age) {
console.log(`Hello, my name is ${name} and I am ${age} years old.`);
}
introduce("Alice", 25);
// আউটপুট: Hello, my name is Alice and I am 25 years old.
ব্যাখ্যা: এখানে name
এবং age
হলো প্যারামিটার, এবং "Alice"
ও 25
হলো আর্গুমেন্ট।
ফাংশনের প্যারামিটারের জন্য পূর্বনির্ধারিত মান নির্ধারণ করতে =
অপারেটর ব্যবহার করা হয়।
function greet(name = "Guest") {
console.log(`Hello, ${name}!`);
}
greet(); // আউটপুট: Hello, Guest!
greet("Bob"); // আউটপুট: Hello, Bob!
ব্যাখ্যা: যদি greet
ফাংশন কল করার সময় কোন আর্গুমেন্ট প্রদান না করা হয়, তাহলে name
প্যারামিটারটি "Guest"
মান গ্রহণ করে।
রেস্ট প্যারামিটারস ব্যবহার করে ফাংশনে অজানা সংখ্যক আর্গুমেন্ট গ্রহণ করা যায়।
function sum(...numbers) {
return numbers.reduce((acc, num) => acc + num, 0);
}
console.log(sum(1, 2, 3, 4)); // আউটপুট: 10
ব্যাখ্যা: ...numbers
রেস্ট প্যারামিটার ব্যবহার করে ফাংশনটি যেকোনো সংখ্যক আর্গুমেন্ট গ্রহণ করে একটি অ্যারে হিসেবে রাখে।
রিটার্ন ভ্যালু হলো ফাংশন থেকে ফেরত দেওয়া মান। return
কীওয়ার্ড ব্যবহার করে ফাংশন থেকে মান রিটার্ন করা হয়। ফাংশন যদি কোন মান রিটার্ন না করে, তাহলে এটি undefined
রিটার্ন করে।
function square(x) {
return x * x;
}
let squared = square(5);
console.log(squared); // আউটপুট: 25
ব্যাখ্যা: square
ফাংশনটি x
এর স্কোয়্যার রিটার্ন করে।
function logMessage(message) {
console.log(message);
}
let result = logMessage("This is a message.");
console.log(result); // আউটপুট: This is a message.
// undefined
ব্যাখ্যা: logMessage
ফাংশনটি কেবল মেসেজ লগ করে এবং কোন মান রিটার্ন করে না, তাই undefined
পাওয়া যায়।
স্কোপ হলো ভেরিয়েবলের অ্যাক্সেস এরিয়া। জাভাস্ক্রিপ্টে দুই ধরনের স্কোপ রয়েছে: গ্লোবাল স্কোপ এবং লোকাল স্কোপ।
গ্লোবাল স্কোপে ডিক্লেয়ার করা ভেরিয়েবলগুলি পুরো কোডে অ্যাক্সেসযোগ্য।
let globalVar = "I am global";
function display() {
console.log(globalVar); // আউটপুট: I am global
}
display();
console.log(globalVar); // আউটপুট: I am global
লোকাল স্কোপে ডিক্লেয়ার করা ভেরিয়েবলগুলি শুধুমাত্র ফাংশনের ভিতরে অ্যাক্সেসযোগ্য।
function show() {
let localVar = "I am local";
console.log(localVar); // আউটপুট: I am local
}
show();
console.log(localVar); // ReferenceError: localVar is not defined
ব্যাখ্যা: localVar
শুধুমাত্র show
ফাংশনের ভিতরে অ্যাক্সেসযোগ্য এবং বাইরে ব্যবহার করলে ত্রুটি আসে।
let
এবং const
ব্যবহার করে ভেরিয়েবল ডিক্লেয়ার করলে তা ব্লক স্কোপড হয়, অর্থাৎ {}
ব্রেসের ভিতরে সীমাবদ্ধ থাকে।
if (true) {
let blockVar = "I am block scoped";
console.log(blockVar); // আউটপুট: I am block scoped
}
console.log(blockVar); // ReferenceError: blockVar is not defined
ব্যাখ্যা: blockVar
শুধুমাত্র if
ব্লকের ভিতরে অ্যাক্সেসযোগ্য।
হায়ার-অর্ডার ফাংশন হলো ফাংশন যা অন্য ফাংশনকে প্যারামিটার হিসেবে গ্রহণ করে অথবা ফাংশনকে রিটার্ন করে।
function greet(name) {
return `Hello, ${name}!`;
}
function processUserInput(callback) {
let name = "Charlie";
console.log(callback(name));
}
processUserInput(greet); // আউটপুট: Hello, Charlie!
ব্যাখ্যা: এখানে processUserInput
ফাংশনটি greet
ফাংশনকে প্যারামিটার হিসেবে গ্রহণ করে এবং এটি কল করে।
function multiplier(factor) {
return function(x) {
return x * factor;
};
}
const double = multiplier(2);
console.log(double(5)); // আউটপুট: 10
const triple = multiplier(3);
console.log(triple(5)); // আউটপুট: 15
ব্যাখ্যা: multiplier
ফাংশনটি একটি নতুন ফাংশন রিটার্ন করে যা নির্দিষ্ট factor
দিয়ে গুণ করে।
কলব্যাক ফাংশন হলো ফাংশন যা অন্য ফাংশনের মধ্যে প্যারামিটার হিসেবে প্রদান করা হয় এবং নির্দিষ্ট কাজ সম্পাদন করার পরে কল করা হয়।
function fetchData(callback) {
setTimeout(() => {
let data = "Data fetched";
callback(data);
}, 2000);
}
function displayData(data) {
console.log(data);
}
fetchData(displayData); // আউটপুট (২ সেকেন্ড পরে): Data fetched
ব্যাখ্যা: displayData
ফাংশনটি fetchData
ফাংশনের কলব্যাক হিসেবে ব্যবহৃত হয়েছে, যা ডেটা ফেচ করার পরে কল করা হয়।
ক্লোজার হলো এমন একটি ফাংশন যা তার বাইরের ফাংশনের স্কোপ থেকে ভেরিয়েবল অ্যাক্সেস করতে পারে, এমনকি বাইরের ফাংশনটি এক্সিকিউশন শেষ হয়ে গেলে।
function outerFunction() {
let outerVar = "I am outside!";
function innerFunction() {
console.log(outerVar);
}
return innerFunction;
}
const myInnerFunction = outerFunction();
myInnerFunction(); // আউটপুট: I am outside!
ব্যাখ্যা: innerFunction
ক্লোজার যা outerFunction
এর outerVar
ভেরিয়েবলের অ্যাক্সেস রাখে, যদিও outerFunction
এক্সিকিউশন শেষ হয়ে গেছে।
IIFE হলো এমন একটি ফাংশন যা ডিফাইন করার সাথে সাথে এক্সিকিউট হয়। এটি গ্লোবাল স্কোপকে দূষিত হওয়া থেকে রক্ষা করে।
(function() {
let message = "This is an IIFE";
console.log(message); // আউটপুট: This is an IIFE
})();
// console.log(message); // ReferenceError: message is not defined
ব্যাখ্যা: IIFE ফাংশনটি {}
ব্রেসের ভিতরে সংজ্ঞায়িত এবং ()
ব্যবহার করে তা এক্সিকিউট করা হয়। এতে ভেরিয়েবলগুলি গ্লোবাল স্কোপে উপলব্ধ হয় না।
পূর্বনির্ধারিত মান নির্ধারণ করে ফাংশনের প্যারামিটারগুলোর জন্য।
function greet(name = "Guest") {
console.log(`Hello, ${name}!`);
}
greet(); // আউটপুট: Hello, Guest!
greet("Bob"); // আউটপুট: Hello, Bob!
অজানা সংখ্যক আর্গুমেন্ট গ্রহণ করতে ব্যবহৃত হয়।
function sum(...numbers) {
return numbers.reduce((acc, num) => acc + num, 0);
}
console.log(sum(1, 2, 3, 4)); // আউটপুট: 10
অ্যারে বা অবজেক্টকে পৃথক উপাদানে ভাঙতে ব্যবহৃত হয়।
const arr1 = [1, 2, 3];
const arr2 = [...arr1, 4, 5];
console.log(arr2); // আউটপুট: [1, 2, 3, 4, 5]
const obj1 = { a: 1, b: 2 };
const obj2 = { ...obj1, c: 3 };
console.log(obj2); // আউটপুট: { a: 1, b: 2, c: 3 }
জাভাস্ক্রিপ্ট ফাংশন হলো কোডের একটি ব্লক যা নির্দিষ্ট কাজ সম্পাদন করে এবং পুনরায় ব্যবহারযোগ্য। ফাংশন ডিক্লেয়ারেশন, ফাংশন এক্সপ্রেশন, অ্যারো ফাংশন ইত্যাদি পদ্ধতিতে ফাংশন তৈরি করা যায়। ফাংশনের প্যারামিটার, আর্গুমেন্ট, রিটার্ন ভ্যালু, স্কোপ, হায়ার-অর্ডার ফাংশন, কলব্যাক, ক্লোজার, এবং IIFE সহ আরও অনেক ফিচার ফাংশনগুলিকে শক্তিশালী করে তোলে। এই ফিচারগুলোকে ভালোভাবে শেখা এবং ব্যবহার করা ডেভেলপারদের কোডকে আরও সংগঠিত, পুনরায় ব্যবহারযোগ্য এবং রক্ষণাবেক্ষণযোগ্য করে তোলে, যা বড় এবং জটিল প্রজেক্টগুলিতে বিশেষভাবে উপকারী।
this
কিওয়ার্ড: অ্যারো ফাংশন ব্যবহার করে this
কিওয়ার্ডের আচরণ কিভাবে পরিবর্তিত হয় তা বোঝার চেষ্টা করুন।ফাংশন হলো জাভাস্ক্রিপ্টের অন্যতম শক্তিশালী এবং মৌলিক কনসেপ্ট। এটি ভালোভাবে বোঝা এবং ব্যবহার করা ডেভেলপারদের জন্য অপরিহার্য, কারণ ফাংশনগুলি কোডের সংগঠন, পুনরায় ব্যবহারযোগ্যতা এবং রক্ষণাবেক্ষণ সহজ করে তোলে।
জাভাস্ক্রিপ্টে ফাংশন হল কোডের একটি ব্লক যা নির্দিষ্ট কাজ সম্পাদন করে এবং প্রয়োজন অনুসারে বারবার ব্যবহার করা যায়। ফাংশনগুলি কোডকে আরও সংগঠিত, পুনরায় ব্যবহারযোগ্য এবং রক্ষণাবেক্ষণযোগ্য করে তোলে।
ফাংশন হলো এক বা একাধিক স্টেটমেন্টের একটি ব্লক যা নির্দিষ্ট কাজ সম্পাদন করে। এটি ডেটা গ্রহণ করতে পারে (প্যারামিটার) এবং ফলাফল রিটার্ন করতে পারে। ফাংশনগুলি বিভিন্ন ধরণের কাজ যেমন গণনা করা, ডেটা প্রক্রিয়াকরণ, ইউজার ইন্টারঅ্যাকশন পরিচালনা ইত্যাদিতে ব্যবহৃত হয়।
function greet() {
console.log("Hello, World!");
}
greet(); // আউটপুট: Hello, World!
ব্যাখ্যা: এখানে greet
নামক একটি ফাংশন ডিক্লেয়ার করা হয়েছে যা "Hello, World!" মেসেজটি কনসোলে প্রদর্শন করে।
জাভাস্ক্রিপ্টে ফাংশন ডিক্লেয়ার করার কয়েকটি পদ্ধতি রয়েছে:
ফাংশন ডিক্লেয়ারেশন হলো ফাংশন তৈরির একটি সাধারণ পদ্ধতি যেখানে function
কীওয়ার্ড ব্যবহার করা হয়।
function add(a, b) {
return a + b;
}
let sum = add(5, 3);
console.log(sum); // আউটপুট: 8
ব্যাখ্যা: এখানে add
নামক ফাংশনটি দুইটি প্যারামিটার a
এবং b
গ্রহণ করে এবং তাদের যোগফল রিটার্ন করে।
ফাংশন এক্সপ্রেশন হলো ফাংশনকে একটি ভেরিয়েবলে সংরক্ষণ করার পদ্ধতি। এটি অ্যানোনিমাস বা নেমড হতে পারে।
const multiply = function(a, b) {
return a * b;
};
let product = multiply(4, 5);
console.log(product); // আউটপুট: 20
ব্যাখ্যা: এখানে একটি অ্যানোনিমাস ফাংশন multiply
নামক ভেরিয়েবলে সংরক্ষিত হয়েছে, যা দুইটি সংখ্যার গুণফল রিটার্ন করে।
অ্যারো ফাংশন ES6 এ পরিচিত একটি সংক্ষিপ্ত ফাংশন ডেফিনিশন পদ্ধতি। এটি =>
সিনট্যাক্স ব্যবহার করে এবং this
কিওয়ার্ডের আচরণ পরিবর্তন করে।
const divide = (a, b) => {
return a / b;
};
let result = divide(10, 2);
console.log(result); // আউটপুট: 5
সংক্ষিপ্ত রূপ:
const subtract = (a, b) => a - b;
let difference = subtract(10, 4);
console.log(difference); // আউটপুট: 6
ব্যাখ্যা: অ্যারো ফাংশন সংক্ষিপ্ত সিনট্যাক্স ব্যবহার করে একই কাজ করে, যা কোডকে আরও পরিষ্কার এবং সংক্ষিপ্ত করে তোলে।
প্যারামিটার হলো ফাংশন ডিফিনিশনে ডিক্লেয়ার করা ভেরিয়েবল যা ফাংশন কল করার সময় মান গ্রহণ করে। আর্গুমেন্ট হলো সেই মান যা ফাংশন কল করার সময় প্যারামিটারে প্রদান করা হয়।
function introduce(name, age) {
console.log(`Hello, my name is ${name} and I am ${age} years old.`);
}
introduce("Alice", 25);
// আউটপুট: Hello, my name is Alice and I am 25 years old.
ব্যাখ্যা: এখানে name
এবং age
হলো প্যারামিটার, এবং "Alice"
ও 25
হলো আর্গুমেন্ট।
ফাংশনের প্যারামিটারের জন্য পূর্বনির্ধারিত মান নির্ধারণ করতে =
অপারেটর ব্যবহার করা হয়।
function greet(name = "Guest") {
console.log(`Hello, ${name}!`);
}
greet(); // আউটপুট: Hello, Guest!
greet("Bob"); // আউটপুট: Hello, Bob!
ব্যাখ্যা: যদি greet
ফাংশন কল করার সময় কোন আর্গুমেন্ট প্রদান না করা হয়, তাহলে name
প্যারামিটারটি "Guest"
মান গ্রহণ করে।
রেস্ট প্যারামিটারস ব্যবহার করে ফাংশনে অজানা সংখ্যক আর্গুমেন্ট গ্রহণ করা যায়।
function sum(...numbers) {
return numbers.reduce((acc, num) => acc + num, 0);
}
console.log(sum(1, 2, 3, 4)); // আউটপুট: 10
ব্যাখ্যা: ...numbers
রেস্ট প্যারামিটার ব্যবহার করে ফাংশনটি যেকোনো সংখ্যক আর্গুমেন্ট গ্রহণ করে একটি অ্যারে হিসেবে রাখে।
রিটার্ন ভ্যালু হলো ফাংশন থেকে ফেরত দেওয়া মান। return
কীওয়ার্ড ব্যবহার করে ফাংশন থেকে মান রিটার্ন করা হয়। ফাংশন যদি কোন মান রিটার্ন না করে, তাহলে এটি undefined
রিটার্ন করে।
function square(x) {
return x * x;
}
let squared = square(5);
console.log(squared); // আউটপুট: 25
ব্যাখ্যা: square
ফাংশনটি x
এর স্কোয়্যার রিটার্ন করে।
function logMessage(message) {
console.log(message);
}
let result = logMessage("This is a message.");
console.log(result); // আউটপুট: This is a message.
// undefined
ব্যাখ্যা: logMessage
ফাংশনটি কেবল মেসেজ লগ করে এবং কোন মান রিটার্ন করে না, তাই undefined
পাওয়া যায়।
স্কোপ হলো ভেরিয়েবলের অ্যাক্সেস এরিয়া। জাভাস্ক্রিপ্টে দুই ধরনের স্কোপ রয়েছে: গ্লোবাল স্কোপ এবং লোকাল স্কোপ।
গ্লোবাল স্কোপে ডিক্লেয়ার করা ভেরিয়েবলগুলি পুরো কোডে অ্যাক্সেসযোগ্য।
let globalVar = "I am global";
function display() {
console.log(globalVar); // আউটপুট: I am global
}
display();
console.log(globalVar); // আউটপুট: I am global
লোকাল স্কোপে ডিক্লেয়ার করা ভেরিয়েবলগুলি শুধুমাত্র ফাংশনের ভিতরে অ্যাক্সেসযোগ্য।
function show() {
let localVar = "I am local";
console.log(localVar); // আউটপুট: I am local
}
show();
console.log(localVar); // ReferenceError: localVar is not defined
ব্যাখ্যা: localVar
শুধুমাত্র show
ফাংশনের ভিতরে অ্যাক্সেসযোগ্য এবং বাইরে ব্যবহার করলে ত্রুটি আসে।
let
এবং const
ব্যবহার করে ভেরিয়েবল ডিক্লেয়ার করলে তা ব্লক স্কোপড হয়, অর্থাৎ {}
ব্রেসের ভিতরে সীমাবদ্ধ থাকে।
if (true) {
let blockVar = "I am block scoped";
console.log(blockVar); // আউটপুট: I am block scoped
}
console.log(blockVar); // ReferenceError: blockVar is not defined
ব্যাখ্যা: blockVar
শুধুমাত্র if
ব্লকের ভিতরে অ্যাক্সেসযোগ্য।
হায়ার-অর্ডার ফাংশন হলো ফাংশন যা অন্য ফাংশনকে প্যারামিটার হিসেবে গ্রহণ করে অথবা ফাংশনকে রিটার্ন করে।
function greet(name) {
return `Hello, ${name}!`;
}
function processUserInput(callback) {
let name = "Charlie";
console.log(callback(name));
}
processUserInput(greet); // আউটপুট: Hello, Charlie!
ব্যাখ্যা: এখানে processUserInput
ফাংশনটি greet
ফাংশনকে প্যারামিটার হিসেবে গ্রহণ করে এবং এটি কল করে।
function multiplier(factor) {
return function(x) {
return x * factor;
};
}
const double = multiplier(2);
console.log(double(5)); // আউটপুট: 10
const triple = multiplier(3);
console.log(triple(5)); // আউটপুট: 15
ব্যাখ্যা: multiplier
ফাংশনটি একটি নতুন ফাংশন রিটার্ন করে যা নির্দিষ্ট factor
দিয়ে গুণ করে।
কলব্যাক ফাংশন হলো ফাংশন যা অন্য ফাংশনের মধ্যে প্যারামিটার হিসেবে প্রদান করা হয় এবং নির্দিষ্ট কাজ সম্পাদন করার পরে কল করা হয়।
function fetchData(callback) {
setTimeout(() => {
let data = "Data fetched";
callback(data);
}, 2000);
}
function displayData(data) {
console.log(data);
}
fetchData(displayData); // আউটপুট (২ সেকেন্ড পরে): Data fetched
ব্যাখ্যা: displayData
ফাংশনটি fetchData
ফাংশনের কলব্যাক হিসেবে ব্যবহৃত হয়েছে, যা ডেটা ফেচ করার পরে কল করা হয়।
ক্লোজার হলো এমন একটি ফাংশন যা তার বাইরের ফাংশনের স্কোপ থেকে ভেরিয়েবল অ্যাক্সেস করতে পারে, এমনকি বাইরের ফাংশনটি এক্সিকিউশন শেষ হয়ে গেলে।
function outerFunction() {
let outerVar = "I am outside!";
function innerFunction() {
console.log(outerVar);
}
return innerFunction;
}
const myInnerFunction = outerFunction();
myInnerFunction(); // আউটপুট: I am outside!
ব্যাখ্যা: innerFunction
ক্লোজার যা outerFunction
এর outerVar
ভেরিয়েবলের অ্যাক্সেস রাখে, যদিও outerFunction
এক্সিকিউশন শেষ হয়ে গেছে।
IIFE হলো এমন একটি ফাংশন যা ডিফাইন করার সাথে সাথে এক্সিকিউট হয়। এটি গ্লোবাল স্কোপকে দূষিত হওয়া থেকে রক্ষা করে।
(function() {
let message = "This is an IIFE";
console.log(message); // আউটপুট: This is an IIFE
})();
// console.log(message); // ReferenceError: message is not defined
ব্যাখ্যা: IIFE ফাংশনটি {}
ব্রেসের ভিতরে সংজ্ঞায়িত এবং ()
ব্যবহার করে তা এক্সিকিউট করা হয়। এতে ভেরিয়েবলগুলি গ্লোবাল স্কোপে উপলব্ধ হয় না।
পূর্বনির্ধারিত মান নির্ধারণ করে ফাংশনের প্যারামিটারগুলোর জন্য।
function greet(name = "Guest") {
console.log(`Hello, ${name}!`);
}
greet(); // আউটপুট: Hello, Guest!
greet("Bob"); // আউটপুট: Hello, Bob!
অজানা সংখ্যক আর্গুমেন্ট গ্রহণ করতে ব্যবহৃত হয়।
function sum(...numbers) {
return numbers.reduce((acc, num) => acc + num, 0);
}
console.log(sum(1, 2, 3, 4)); // আউটপুট: 10
অ্যারে বা অবজেক্টকে পৃথক উপাদানে ভাঙতে ব্যবহৃত হয়।
const arr1 = [1, 2, 3];
const arr2 = [...arr1, 4, 5];
console.log(arr2); // আউটপুট: [1, 2, 3, 4, 5]
const obj1 = { a: 1, b: 2 };
const obj2 = { ...obj1, c: 3 };
console.log(obj2); // আউটপুট: { a: 1, b: 2, c: 3 }
জাভাস্ক্রিপ্ট ফাংশন হলো কোডের একটি ব্লক যা নির্দিষ্ট কাজ সম্পাদন করে এবং পুনরায় ব্যবহারযোগ্য। ফাংশন ডিক্লেয়ারেশন, ফাংশন এক্সপ্রেশন, অ্যারো ফাংশন ইত্যাদি পদ্ধতিতে ফাংশন তৈরি করা যায়। ফাংশনের প্যারামিটার, আর্গুমেন্ট, রিটার্ন ভ্যালু, স্কোপ, হায়ার-অর্ডার ফাংশন, কলব্যাক, ক্লোজার, এবং IIFE সহ আরও অনেক ফিচার ফাংশনগুলিকে শক্তিশালী করে তোলে। এই ফিচারগুলোকে ভালোভাবে শেখা এবং ব্যবহার করা ডেভেলপারদের কোডকে আরও সংগঠিত, পুনরায় ব্যবহারযোগ্য এবং রক্ষণাবেক্ষণযোগ্য করে তোলে, যা বড় এবং জটিল প্রজেক্টগুলিতে বিশেষভাবে উপকারী।
this
কিওয়ার্ড: অ্যারো ফাংশন ব্যবহার করে this
কিওয়ার্ডের আচরণ কিভাবে পরিবর্তিত হয় তা বোঝার চেষ্টা করুন।ফাংশন হলো জাভাস্ক্রিপ্টের অন্যতম শক্তিশালী এবং মৌলিক কনসেপ্ট। এটি ভালোভাবে বোঝা এবং ব্যবহার করা ডেভেলপারদের জন্য অপরিহার্য, কারণ ফাংশনগুলি কোডের সংগঠন, পুনরায় ব্যবহারযোগ্যতা এবং রক্ষণাবেক্ষণ সহজ করে তোলে।